#pragma once
#ifndef __MYSTDIO_H__
#define __MYSTDIO_H__      //搭配#endif，功能相当于#pragma once

#include <string.h>

#define SIZE 1024

//flag的选择
#define FLUSH_NOW 1     //无缓冲 001  
#define FLUSH_LINE 2    //行缓冲 010
#define FLUSH_ALL 4     //全缓冲 100

//FILE：内含有fd和缓冲区
typedef struct IO_FILE {
    int fileno;             //fd

    //char inbuffer[SIZE];
    //int in_pos;
    char outbuffer[SIZE];  //模拟输出缓冲区
    int out_pos;           //缓冲区刷新方式        
    int flag;              //缓冲区内的字符个数 、光标指向位置的下标
}_FILE;

_FILE* _fopen(const char* filename, const char* flag);
int _fwrite(_FILE* fp, const char* s, int len);
void _fclose(_FILE* fp);                             //三大模拟函数


#endif 
